set(gd_device_files
	Device.cpp
	Device.h
	DeviceApplyable.h
	DeviceApplyable.inl
	DeviceContext.h
	DeviceContext.inl
)

set(gd_main_files
	Driver.cpp
	Driver.h
	Factory.cpp
	Factory.h
	gd.cpp
	gd.h
	types.h
)

set(gd_primitives_files
	Buffer.h
	Buffer.inl
	BufferImpl.h
	BufferImpl.inl
	BufferLocker.cpp
	BufferLocker.h
	IndexBuffer.h
	IndexBuffer.inl
	Primitive.cpp
	Primitive.h
	Primitive.inl
	PrimitiveBuilder.h
	PrimitiveBuilder.inl
	VertexBuffer.h
	VertexBuffer.inl
)

set(gd_shader_files
	BaseShader.cpp
	BaseShader.h
	BaseShaderImpl.h
	BaseShaderImpl.inl
	InputLayoutDesc.cpp
	InputLayoutDesc.h
	Material.cpp
	Material.h
	Material.inl
	MaterialBuilder.h
	MaterialBuilder.cpp
	PixelShader.h
	PixelShader.inl
	ShaderBuilder.h
	ShaderBuilder.inl
	VertexShader.h
	VertexShader.inl
)

set(gd_vertices_files
	VertexAccessor.cpp
	VertexAccessor.h 
	VertexFormat.h
	VertexFormat.inl
)

set(gd_all_files
	${common_misc_files}
	${gd_device_files}
	${gd_main_files}
	${gd_primitives_files}
	${gd_shader_files}
	${gd_vertices_files}
)

add_library(gd ${gd_all_files})
add_libs_target(gd)

source_group(device FILES ${gd_device_files})
source_group(main FILES ${gd_main_files})
source_group(primitives FILES ${gd_primitives_files})
source_group(shaders FILES ${gd_shader_files})
source_group(vertices FILES ${gd_vertices_files})

add_common_properties(gd)